{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 项目说明\n",
    "新手司机通常不熟悉交通标志，在行车过程中不能快速判断交通标志的含义，容易造成事故或违章事件。手机已经成为大众生活必备的电子产品，它具有较强的计算能力和图像处理能力，可以将训练好的模型部署到手机上，在行车过程中不断采集车辆前方的视频图像，在手机视频界面上实时标注出交通标志的含义，给驾驶员相应的提示信息，及时采取正确的操作，避免发生交通事故和违章。\n",
    "项目采用PaddleX套件实现交通标志检测。检测模型采用PPYOLO，骨干网络采用ResNet50_vd_ssld。训练完成后以PaddleLite将模型转换为arm格式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 一、数据准备\n",
    "解压数据集压缩包，先按照VOC格式将csv文件转化为xml。利用PaddleX将数据集划分为训练集、验证集和测试集。划分之前首先需要安装PaddleX。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 解压所挂载的数据集在同级目录下\r\n",
    "!unzip -oq data/data107275/archive\\(5\\).zip -d data/jtbz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "057_1_0002_1_j.png 28 25 111 114 ['145' '136' '28' '25' '111' '114' '57']\r"
     ]
    }
   ],
   "source": [
    "import os\r\n",
    "import numpy as np\r\n",
    "import codecs\r\n",
    "import pandas as pd\r\n",
    "import json\r\n",
    "from glob import glob\r\n",
    "import cv2\r\n",
    "import shutil\r\n",
    "from sklearn.model_selection import train_test_split\r\n",
    "# from IPython import embed\r\n",
    "\r\n",
    "#1.标签路径\r\n",
    "csv_file = \"data/jtbz/annotations.csv\"\r\n",
    "saved_path = \"data/jtbz/VOC2007/\"                #VOC格式数据的保存路径\r\n",
    "image_save_path = \"./JPEGImages\"\r\n",
    "image_raw_parh = \"data/jtbz/images/\"\r\n",
    "\r\n",
    "#2.创建需要的文件夹\r\n",
    "if not os.path.exists(saved_path + \"Annotations\"):\r\n",
    "    os.makedirs(saved_path + \"Annotations\")\r\n",
    "if not os.path.exists(saved_path + \"JPEGImages/\"):\r\n",
    "    os.makedirs(saved_path + \"JPEGImages/\")\r\n",
    "if not os.path.exists(saved_path + \"ImageSets/Main/\"):  \r\n",
    "    os.makedirs(saved_path + \"ImageSets/Main/\") \r\n",
    "    \r\n",
    "#3.获取待处理文件\r\n",
    "total_csv_annotations = {}\r\n",
    "annotations = pd.read_csv(csv_file,header=None).values\r\n",
    "for annotation in annotations:\r\n",
    "    key = annotation[0].split(os.sep)[-1]\r\n",
    "    value = np.array([annotation[1:]])\r\n",
    "    if key in total_csv_annotations.keys():\r\n",
    "        total_csv_annotations[key] = np.concatenate((total_csv_annotations[key],value),axis=0)\r\n",
    "    else:\r\n",
    "        total_csv_annotations[key] = value\r\n",
    "\r\n",
    "# print(total_csv_annotations)\r\n",
    "# for item in total_csv_annotations:\r\n",
    "#     print(item,item[1])\r\n",
    "\r\n",
    "#4.读取标注信息，按VOC格式写入xml\r\n",
    "for filename,label in total_csv_annotations.items():\r\n",
    "    \r\n",
    "    if filename == 'file_name':\r\n",
    "        continue\r\n",
    "\r\n",
    "    height, width, channels = cv2.imread(image_raw_parh + filename).shape\r\n",
    "    \r\n",
    "    with codecs.open(saved_path + \"Annotations/\"+filename.replace(\".png\",\".xml\"),\"w\",\"utf-8\") as xml:\r\n",
    "        xml.write('<annotation>\\n')\r\n",
    "        xml.write('\\t<folder>' + 'VOC2007' + '</folder>\\n')\r\n",
    "        xml.write('\\t<filename>' + filename + '</filename>\\n')\r\n",
    "        xml.write('\\t<source>\\n')\r\n",
    "        xml.write('\\t\\t<database>The UAV autolanding</database>\\n')\r\n",
    "        xml.write('\\t\\t<annotation>UAV AutoLanding</annotation>\\n')\r\n",
    "        xml.write('\\t\\t<image>flickr</image>\\n')\r\n",
    "        xml.write('\\t\\t<flickrid>NULL</flickrid>\\n')\r\n",
    "        xml.write('\\t</source>\\n')\r\n",
    "        xml.write('\\t<owner>\\n')\r\n",
    "        xml.write('\\t\\t<flickrid>NULL</flickrid>\\n')\r\n",
    "        xml.write('\\t\\t<name>ChaojieZhu</name>\\n')\r\n",
    "        xml.write('\\t</owner>\\n')\r\n",
    "        xml.write('\\t<size>\\n')\r\n",
    "        xml.write('\\t\\t<width>'+ str(width) + '</width>\\n')\r\n",
    "        xml.write('\\t\\t<height>'+ str(height) + '</height>\\n')\r\n",
    "        xml.write('\\t\\t<depth>' + str(channels) + '</depth>\\n')\r\n",
    "        xml.write('\\t</size>\\n')\r\n",
    "        xml.write('\\t\\t<segmented>0</segmented>\\n')\r\n",
    "\r\n",
    "        if isinstance(label,float):\r\n",
    "            xml.write('</annotation>')\r\n",
    "            continue\r\n",
    "\r\n",
    "        for label_detail in label:\r\n",
    "            labels = label_detail\r\n",
    "            \r\n",
    "            xmin = int(labels[2])\r\n",
    "            ymin = int(labels[3])\r\n",
    "            xmax = int(labels[4])\r\n",
    "            ymax = int(labels[5])\r\n",
    "            label_ = labels[-1]\r\n",
    "            if xmax <= xmin:\r\n",
    "                pass\r\n",
    "            elif ymax <= ymin:\r\n",
    "                pass\r\n",
    "            else:\r\n",
    "                xml.write('\\t<object>\\n')\r\n",
    "                xml.write('\\t\\t<name>'+label_+'</name>\\n')\r\n",
    "                xml.write('\\t\\t<pose>Unspecified</pose>\\n')\r\n",
    "                xml.write('\\t\\t<truncated>1</truncated>\\n')\r\n",
    "                xml.write('\\t\\t<difficult>0</difficult>\\n')\r\n",
    "                xml.write('\\t\\t<bndbox>\\n')\r\n",
    "                xml.write('\\t\\t\\t<xmin>' + str(xmin) + '</xmin>\\n')\r\n",
    "                xml.write('\\t\\t\\t<ymin>' + str(ymin) + '</ymin>\\n')\r\n",
    "                xml.write('\\t\\t\\t<xmax>' + str(xmax) + '</xmax>\\n')\r\n",
    "                xml.write('\\t\\t\\t<ymax>' + str(ymax) + '</ymax>\\n')\r\n",
    "                xml.write('\\t\\t</bndbox>\\n')\r\n",
    "                xml.write('\\t</object>\\n')\r\n",
    "                print(filename,xmin,ymin,xmax,ymax,labels)\r\n",
    "        xml.write('</annotation>')\r\n",
    "        \r\n",
    "\r\n",
    "#6.创建txt文件（可以不创建，后面用Paddlex划分数据集时生成相应的txt文件）\r\n",
    "txtsavepath = saved_path + \"ImageSets/Main/\"\r\n",
    "ftrainval = open(txtsavepath+'/trainval.txt', 'w')\r\n",
    "ftest = open(txtsavepath+'/test.txt', 'w')\r\n",
    "ftrain = open(txtsavepath+'/train.txt', 'w')\r\n",
    "fval = open(txtsavepath+'/val.txt', 'w')\r\n",
    "total_files = glob(saved_path+\"./Annotations/*.xml\")\r\n",
    "total_files = [i.split(\"/\")[-1].split(\".xml\")[0] for i in total_files]\r\n",
    "#test_filepath = \"\"\r\n",
    "for file in total_files:\r\n",
    "    ftrainval.write(file + \"\\n\")\r\n",
    "\r\n",
    "# 将图片复制到voc JPEGImages文件夹\r\n",
    "for image in glob(image_raw_parh+\"/*.png\"):\r\n",
    "    shutil.copy(image,saved_path+image_save_path)\r\n",
    "\r\n",
    "train_files,val_files = train_test_split(total_files,test_size=0.15,random_state=42)\r\n",
    "\r\n",
    "for file in train_files:\r\n",
    "    ftrain.write(file + \"\\n\")\r\n",
    "#val\r\n",
    "for file in val_files:\r\n",
    "    fval.write(file + \"\\n\")\r\n",
    "\r\n",
    "ftrainval.close()\r\n",
    "ftrain.close()\r\n",
    "fval.close()\r\n",
    "ftest.close()\r\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://mirror.baidu.com/pypi/simple\n",
      "Collecting paddlex==1.3.10\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/1b/73/63f8a72a55e93c58daf3e355dd2b881db9b182e170b70b1200a5d0e3ba2c/paddlex-1.3.10-py3-none-any.whl (516 kB)\n",
      "     |████████████████████████████████| 516 kB 8.1 MB/s            \n",
      "\u001b[?25hCollecting rc\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/39/5d/82bce78023c470345d27b61cb3f1bc4fdc8249dcd7d83bc05b1319687adf/rc-0.3.1.tar.gz (12 kB)\n",
      "  Preparing metadata (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25hRequirement already satisfied: flask-cors in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (3.0.8)\n",
      "Requirement already satisfied: colorama in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (0.4.4)\n",
      "Requirement already satisfied: visualdl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (2.2.0)\n",
      "Collecting paddleslim==1.1.1\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/d1/77/e257227bed9a70ff0d35a4a3c4e70ac2d2362c803834c4c52018f7c4b762/paddleslim-1.1.1-py2.py3-none-any.whl (145 kB)\n",
      "     |████████████████████████████████| 145 kB 14.1 MB/s            \n",
      "\u001b[?25hCollecting xlwt\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl (99 kB)\n",
      "     |████████████████████████████████| 99 kB 9.2 MB/s             \n",
      "\u001b[?25hRequirement already satisfied: pyyaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (5.1.2)\n",
      "Requirement already satisfied: psutil in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (5.7.2)\n",
      "Collecting pycocotools\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/75/5c/ac61ea715d7a89ecc31c090753bde28810238225ca8b71778dfe3e6a68bc/pycocotools-2.0.4.tar.gz (106 kB)\n",
      "     |████████████████████████████████| 106 kB 15.1 MB/s            \n",
      "\u001b[?25h  Installing build dependencies ... \u001b[?25ldone\n",
      "\u001b[?25h  Getting requirements to build wheel ... \u001b[?25ldone\n",
      "\u001b[?25h  Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n",
      "\u001b[?25hRequirement already satisfied: sklearn in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (0.0)\n",
      "Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (4.27.0)\n",
      "Collecting paddlehub==2.1.0\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/7a/29/3bd0ca43c787181e9c22fe44b944b64d7fcb14ce66d3bf4602d9ad2ac76c/paddlehub-2.1.0-py3-none-any.whl (211 kB)\n",
      "     |████████████████████████████████| 211 kB 24.6 MB/s            \n",
      "\u001b[?25hCollecting shapely>=1.7.0\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/ae/20/33ce377bd24d122a4d54e22ae2c445b9b1be8240edb50040b40add950cd9/Shapely-1.8.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB)\n",
      "     |████████████████████████████████| 1.1 MB 29.1 MB/s            \n",
      "\u001b[?25hRequirement already satisfied: opencv-python in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlex==1.3.10) (4.1.1.26)\n",
      "Collecting paddle2onnx>=0.5.1\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/db/72/69812b9f56028f6ce46cf4d11540d40d75474b3ac861fcbf439b92877add/paddle2onnx-0.9.0-py3-none-any.whl (84 kB)\n",
      "     |████████████████████████████████| 84 kB 7.4 MB/s             \n",
      "\u001b[?25hRequirement already satisfied: flask>=1.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (1.1.1)\n",
      "Requirement already satisfied: paddlenlp>=2.0.0rc5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (2.1.1)\n",
      "Requirement already satisfied: packaging in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (21.3)\n",
      "Requirement already satisfied: easydict in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (1.9)\n",
      "Requirement already satisfied: gunicorn>=19.10.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (20.0.4)\n",
      "Requirement already satisfied: pyzmq in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (22.3.0)\n",
      "Requirement already satisfied: colorlog in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (4.1.0)\n",
      "Requirement already satisfied: Pillow in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (8.2.0)\n",
      "Requirement already satisfied: gitpython in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (3.1.14)\n",
      "Requirement already satisfied: numpy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (1.19.5)\n",
      "Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (2.2.3)\n",
      "Requirement already satisfied: filelock in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (3.0.12)\n",
      "Requirement already satisfied: rarfile in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlehub==2.1.0->paddlex==1.3.10) (3.1)\n",
      "Collecting redis>=2.6\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/c5/fa/730caa74a6d6d88c289176161b2f56cac27f108cf3102165343dbaf1bc84/redis-4.1.4-py3-none-any.whl (175 kB)\n",
      "     |████████████████████████████████| 175 kB 30.8 MB/s            \n",
      "\u001b[?25hRequirement already satisfied: importlib-metadata>=1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from redis>=2.6->rc) (4.2.0)\n",
      "Collecting deprecated>=1.2.3\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/51/6a/c3a0408646408f7283b7bc550c30a32cc791181ec4618592eec13e066ce3/Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)\n",
      "Requirement already satisfied: pandas in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (1.1.5)\n",
      "Requirement already satisfied: Flask-Babel>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (1.0.0)\n",
      "Requirement already satisfied: flake8>=3.7.9 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (4.0.1)\n",
      "Requirement already satisfied: bce-python-sdk in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (0.8.53)\n",
      "Requirement already satisfied: shellcheck-py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (0.7.1.1)\n",
      "Requirement already satisfied: six>=1.14.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (1.16.0)\n",
      "Requirement already satisfied: requests in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (2.24.0)\n",
      "Requirement already satisfied: pre-commit in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (1.21.0)\n",
      "Requirement already satisfied: protobuf>=3.11.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl>=2.0.0->paddlex==1.3.10) (3.14.0)\n",
      "Requirement already satisfied: scikit-learn in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from sklearn->paddlex==1.3.10) (0.24.2)\n",
      "Requirement already satisfied: wrapt<2,>=1.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from deprecated>=1.2.3->redis>=2.6->rc) (1.12.1)\n",
      "Requirement already satisfied: pyflakes<2.5.0,>=2.4.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.10) (2.4.0)\n",
      "Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.10) (0.6.1)\n",
      "Requirement already satisfied: pycodestyle<2.9.0,>=2.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl>=2.0.0->paddlex==1.3.10) (2.8.0)\n",
      "Requirement already satisfied: itsdangerous>=0.24 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.1.0->paddlex==1.3.10) (1.1.0)\n",
      "Requirement already satisfied: Jinja2>=2.10.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.1.0->paddlex==1.3.10) (2.11.0)\n",
      "Requirement already satisfied: Werkzeug>=0.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.1.0->paddlex==1.3.10) (0.16.0)\n",
      "Requirement already satisfied: click>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.0->paddlehub==2.1.0->paddlex==1.3.10) (7.0)\n",
      "Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl>=2.0.0->paddlex==1.3.10) (2019.3)\n",
      "Requirement already satisfied: Babel>=2.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl>=2.0.0->paddlex==1.3.10) (2.8.0)\n",
      "Requirement already satisfied: setuptools>=3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from gunicorn>=19.10.0->paddlehub==2.1.0->paddlex==1.3.10) (56.2.0)\n",
      "Requirement already satisfied: typing-extensions>=3.6.4 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata>=1.0->redis>=2.6->rc) (4.0.1)\n",
      "Requirement already satisfied: zipp>=0.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata>=1.0->redis>=2.6->rc) (3.7.0)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.1.0->paddlex==1.3.10) (3.0.7)\n",
      "Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.1.0->paddlex==1.3.10) (0.10.0)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.1.0->paddlex==1.3.10) (1.1.0)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->paddlehub==2.1.0->paddlex==1.3.10) (2.8.2)\n",
      "Collecting onnx<=1.9.0\n",
      "  Downloading https://mirror.baidu.com/pypi/packages/3f/9b/54c950d3256e27f970a83cd0504efb183a24312702deed0179453316dbd0/onnx-1.9.0-cp37-cp37m-manylinux2010_x86_64.whl (12.2 MB)\n",
      "     |████████████████████████████████| 12.2 MB 8.8 MB/s             \n",
      "\u001b[?25hRequirement already satisfied: seqeval in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.10) (1.2.2)\n",
      "Requirement already satisfied: paddlefsl==1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.10) (1.0.0)\n",
      "Requirement already satisfied: h5py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.10) (2.9.0)\n",
      "Requirement already satisfied: multiprocess in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.10) (0.70.11.1)\n",
      "Requirement already satisfied: jieba in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.10) (0.42.1)\n",
      "Requirement already satisfied: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.10) (2.8)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.10) (2019.9.11)\n",
      "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.10) (3.0.4)\n",
      "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl>=2.0.0->paddlex==1.3.10) (1.25.6)\n",
      "Requirement already satisfied: future>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl>=2.0.0->paddlex==1.3.10) (0.18.0)\n",
      "Requirement already satisfied: pycryptodome>=3.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl>=2.0.0->paddlex==1.3.10) (3.9.9)\n",
      "Requirement already satisfied: gitdb<5,>=4.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from gitpython->paddlehub==2.1.0->paddlex==1.3.10) (4.0.5)\n",
      "Requirement already satisfied: toml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.10) (0.10.0)\n",
      "Requirement already satisfied: identify>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.10) (1.4.10)\n",
      "Requirement already satisfied: nodeenv>=0.11.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.10) (1.3.4)\n",
      "Requirement already satisfied: aspy.yaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.10) (1.3.0)\n",
      "Requirement already satisfied: virtualenv>=15.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.10) (16.7.9)\n",
      "Requirement already satisfied: cfgv>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl>=2.0.0->paddlex==1.3.10) (2.0.1)\n",
      "Requirement already satisfied: joblib>=0.11 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->paddlex==1.3.10) (0.14.1)\n",
      "Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->paddlex==1.3.10) (2.1.0)\n",
      "Requirement already satisfied: scipy>=0.19.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->paddlex==1.3.10) (1.6.3)\n",
      "Requirement already satisfied: smmap<4,>=3.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from gitdb<5,>=4.0.1->gitpython->paddlehub==2.1.0->paddlex==1.3.10) (3.0.5)\n",
      "Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask>=1.1.0->paddlehub==2.1.0->paddlex==1.3.10) (2.0.1)\n",
      "Requirement already satisfied: dill>=0.3.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from multiprocess->paddlenlp>=2.0.0rc5->paddlehub==2.1.0->paddlex==1.3.10) (0.3.3)\n",
      "Building wheels for collected packages: rc, pycocotools\n",
      "  Building wheel for rc (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for rc: filename=rc-0.3.1-py3-none-any.whl size=14694 sha256=ce69e906b04d6aa8b5d640775572656e1ed2e38c5d4f031df13daf604be667a0\n",
      "  Stored in directory: /home/aistudio/.cache/pip/wheels/bc/76/f8/e6e6e1b6e6cc046c9b6ac99fe1a785a1e3a1969c42d85076e7\n",
      "  Building wheel for pycocotools (pyproject.toml) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for pycocotools: filename=pycocotools-2.0.4-cp37-cp37m-linux_x86_64.whl size=273769 sha256=b288283f99051e95d15c0ceee859e4a9623da25a9b1ff6fe0025fdade66f7982\n",
      "  Stored in directory: /home/aistudio/.cache/pip/wheels/d0/74/13/98b11419a029f3c25590419747f1ec26f5494beae1d457560b\n",
      "Successfully built rc pycocotools\n",
      "Installing collected packages: onnx, paddle2onnx, deprecated, xlwt, shapely, redis, pycocotools, paddleslim, paddlehub, rc, paddlex\n",
      "  Attempting uninstall: paddlehub\n",
      "    Found existing installation: paddlehub 2.0.4\n",
      "    Uninstalling paddlehub-2.0.4:\n",
      "      Successfully uninstalled paddlehub-2.0.4\n",
      "Successfully installed deprecated-1.2.13 onnx-1.9.0 paddle2onnx-0.9.0 paddlehub-2.1.0 paddleslim-1.1.1 paddlex-1.3.10 pycocotools-2.0.4 rc-0.3.1 redis-4.1.4 shapely-1.8.0 xlwt-1.3.0\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "# 安装PaddleX\r\n",
    "!pip install paddlex==1.3.10 rc -i https://mirror.baidu.com/pypi/simple"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dataset Split Done.\u001b[0m\r\n",
      "\u001b[0mTrain samples: 4200\u001b[0m\r\n",
      "\u001b[0mEval samples: 1199\u001b[0m\r\n",
      "\u001b[0mTest samples: 599\u001b[0m\r\n",
      "\u001b[0mSplit files saved in data/jtbz/VOC2007\u001b[0m\r\n",
      "\u001b[0m\u001b[0m"
     ]
    }
   ],
   "source": [
    "# 划分数据集，将数据划分为70%训练集，20%验证集和10%的测试集。\r\n",
    "!paddlex --split_dataset --format VOC --dataset_dir data/jtbz/VOC2007 --val_value 0.2 --test_value 0.1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 二、数据预处理\n",
    "在训练模型之前，对目标检测任务的数据进行操作，提升模型效果。可用于数据处理的API有：\n",
    "\n",
    "Normalize：对图像进行归一化\n",
    "\n",
    "ResizeByShort：根据图像的短边调整图像大小\n",
    "\n",
    "RandomHorizontalFlip：以一定的概率对图像进行随机水平翻转\n",
    "\n",
    "RandomDistort：以一定的概率对图像进行随机像素内容变换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/__init__.py:107: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working\n",
      "  from collections import MutableMapping\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/rcsetup.py:20: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working\n",
      "  from collections import Iterable, Mapping\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/colors.py:53: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working\n",
      "  from collections import Sized\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2349: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working\n",
      "  if isinstance(obj, collections.Iterator):\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2366: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working\n",
      "  return list(data) if isinstance(data, collections.MappingView) else data\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1500x1000 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1500x1000 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from paddlex.det import transforms\r\n",
    "import matplotlib.pyplot as plt \r\n",
    "import cv2\r\n",
    "\r\n",
    "infer_img = cv2.imread(\"data/jtbz/VOC2007/JPEGImages/014_1_0043.png\")\r\n",
    "plt.figure(figsize=(15,10))\r\n",
    "plt.imshow(cv2.cvtColor(infer_img, cv2.COLOR_BGR2RGB))\r\n",
    "plt.show()\r\n",
    "\r\n",
    "# 定义训练和验证时的transforms\r\n",
    "# API说明 https://paddlex.readthedocs.io/zh_CN/develop/apis/transforms/det_transforms.html\r\n",
    "train_transforms = transforms.Compose([\r\n",
    "    # 此处需要补充图像预处理代码\r\n",
    "    transforms.Normalize(),\r\n",
    "    transforms.ResizeByShort(),\r\n",
    "    transforms.RandomDistort()\r\n",
    "])\r\n",
    "\r\n",
    "eval_transforms = transforms.Compose([\r\n",
    "    # 此处需要补充图像预处理代码\r\n",
    "    transforms.Normalize(),\r\n",
    "    transforms.ResizeByShort(),\r\n",
    "    transforms.RandomDistort()\r\n",
    "])\r\n",
    "\r\n",
    "\r\n",
    "infer_img = cv2.imread(\"data/jtbz/VOC2007/JPEGImages/014_1_0043.png\")\r\n",
    "plt.figure(figsize=(15,10))\r\n",
    "plt.imshow(cv2.cvtColor(infer_img, cv2.COLOR_BGR2RGB))\r\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "#读取PascalVOC格式的检测数据集，并对样本进行相应的处理。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/datasets/voc.py:61: UserWarning: \n",
      "This call to matplotlib.use() has no effect because the backend has already\n",
      "been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n",
      "or matplotlib.backends is imported for the first time.\n",
      "\n",
      "The backend was *originally* set to 'module://matplotlib_inline.backend_inline' by the following code:\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/runpy.py\", line 193, in _run_module_as_main\n",
      "    \"__main__\", mod_spec)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/runpy.py\", line 85, in _run_code\n",
      "    exec(code, run_globals)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel_launcher.py\", line 16, in <module>\n",
      "    app.launch_new_instance()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/traitlets/config/application.py\", line 846, in launch_instance\n",
      "    app.start()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/kernelapp.py\", line 677, in start\n",
      "    self.io_loop.start()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/tornado/platform/asyncio.py\", line 199, in start\n",
      "    self.asyncio_loop.run_forever()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/asyncio/base_events.py\", line 534, in run_forever\n",
      "    self._run_once()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/asyncio/base_events.py\", line 1771, in _run_once\n",
      "    handle._run()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/asyncio/events.py\", line 88, in _run\n",
      "    self._context.run(self._callback, *self._args)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/kernelbase.py\", line 457, in dispatch_queue\n",
      "    await self.process_one()\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/kernelbase.py\", line 446, in process_one\n",
      "    await dispatch(*args)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/kernelbase.py\", line 353, in dispatch_shell\n",
      "    await result\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/kernelbase.py\", line 648, in execute_request\n",
      "    reply_content = await reply_content\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/ipkernel.py\", line 353, in do_execute\n",
      "    res = shell.run_cell(code, store_history=store_history, silent=silent)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/ipykernel/zmqshell.py\", line 533, in run_cell\n",
      "    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2919, in run_cell\n",
      "    self.events.trigger('post_run_cell', result)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/IPython/core/events.py\", line 89, in trigger\n",
      "    func(*args, **kwargs)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib_inline/backend_inline.py\", line 217, in configure_once\n",
      "    activate_matplotlib(backend)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/IPython/core/pylabtools.py\", line 359, in activate_matplotlib\n",
      "    plt.switch_backend(backend)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/pyplot.py\", line 231, in switch_backend\n",
      "    matplotlib.use(newbackend, warn=False, force=True)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/__init__.py\", line 1422, in use\n",
      "    reload(sys.modules['matplotlib.backends'])\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/importlib/__init__.py\", line 169, in reload\n",
      "    _bootstrap._exec(spec, module)\n",
      "  File \"/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/backends/__init__.py\", line 16, in <module>\n",
      "    line for line in traceback.format_stack()\n",
      "\n",
      "\n",
      "  matplotlib.use('Agg')\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2022-02-17 08:20:26 [INFO]\tStarting to read file list from dataset...\n",
      "2022-02-17 08:20:30 [INFO]\t4200 samples in file data/jtbz/VOC2007/train_list.txt\n",
      "creating index...\n",
      "index created!\n",
      "2022-02-17 08:20:30 [INFO]\tStarting to read file list from dataset...\n",
      "2022-02-17 08:20:31 [INFO]\t1199 samples in file data/jtbz/VOC2007/val_list.txt\n",
      "creating index...\n",
      "index created!\n"
     ]
    }
   ],
   "source": [
    "import paddlex as pdx\r\n",
    "\r\n",
    "# 定义训练和验证所用的数据集\r\n",
    "# API说明：https://paddlex.readthedocs.io/zh_CN/develop/apis/datasets.html#paddlex-datasets-vocdetection\r\n",
    "train_dataset = pdx.datasets.VOCDetection(\r\n",
    "    data_dir='data/jtbz/VOC2007', #数据集所在的目录路径\r\n",
    "    file_list='data/jtbz/VOC2007/train_list.txt', #描述数据集图片文件和对应标注文件的文件路径\r\n",
    "    label_list='data/jtbz/VOC2007/labels.txt', #描述数据集包含的类别信息文件路径\r\n",
    "    transforms=train_transforms,\r\n",
    "    shuffle=True)\r\n",
    "\r\n",
    "eval_dataset = pdx.datasets.VOCDetection(\r\n",
    "    data_dir='data/jtbz/VOC2007',\r\n",
    "    file_list='data/jtbz/VOC2007/val_list.txt',\r\n",
    "    label_list='data/jtbz/VOC2007/labels.txt',\r\n",
    "    transforms=eval_transforms)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 三、训练模型\n",
    "采用骨干网络为ResNet50_vd_ssld的PPYOLO算法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py:2253: UserWarning: The Attr(force_cpu) of Op(fill_constant) will be deprecated in the future, please use 'device_guard' instead. 'device_guard' has higher priority when they are used at the same time.\n",
      "  \"used at the same time.\" % type)\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/ops.py:131\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:155\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:172\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:172\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:174\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:174\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:178\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:178\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:180\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:180\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:216\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:217\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:218\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:219\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:97\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:97\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:99\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:101\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:101\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:101\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:102\n",
      "The behavior of expression A / B has been unified with elementwise_div(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_div(X, Y, axis=0) instead of A / B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/iou_loss.py:79\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:186\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:194\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:349\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:350\n",
      "The behavior of expression A - B has been unified with elementwise_sub(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_sub(X, Y, axis=0) instead of A - B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:351\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:352\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:383\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:385\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:209\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:210\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/loss/yolo_loss.py:212\n",
      "The behavior of expression A + B has been unified with elementwise_add(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_add(X, Y, axis=0) instead of A + B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/iou_aware.py:64\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/iou_aware.py:40\n",
      "The behavior of expression A / B has been unified with elementwise_div(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_div(X, Y, axis=0) instead of A / B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2022-02-17 08:20:47 [INFO]\tConnecting PaddleHub server to get pretrain weights...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "W0217 08:20:48.106271   101 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1\n",
      "W0217 08:20:48.112093   101 device_context.cc:465] device: 0, cuDNN Version: 7.6.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2022-02-17 10:43:38 [INFO]\tModel saved in output/PPYOLO_mobilenetv1/epoch_50.\r"
     ]
    }
   ],
   "source": [
    "# 初始化模型\r\n",
    "# API说明: https://paddlex.readthedocs.io/zh_CN/develop/apis/models/detection.html#paddlex-det-yolov3\r\n",
    "\r\n",
    "# 此处需要补充目标检测模型代码\r\n",
    "model = pdx.det.PPYOLO(num_classes=len(train_dataset.labels), backbone='ResNet50_vd_ssld')\r\n",
    "\r\n",
    "# 模型训练\r\n",
    "# 训练批大小为16，需要用32G的GPU,4200张图片，50轮训练出的模型准确度很低，用了将近2个半小时\r\n",
    "# API说明: https://paddlex.readthedocs.io/zh_CN/develop/apis/models/detection.html#id1\r\n",
    "# 各参数介绍与调整说明：https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html\r\n",
    "# 此处需要补充模型训练参数\r\n",
    "model.train(\r\n",
    "    num_epochs=50,\r\n",
    "    train_dataset=train_dataset,\r\n",
    "    train_batch_size=16,\r\n",
    "    learning_rate=0.000125,\r\n",
    "    lr_decay_epochs=[20, 40],\r\n",
    "    save_dir='output/PPYOLO_mobilenetv1')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 四、用训练好的模型预测\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2022-02-17 11:00:03 [INFO]\tModel[PPYOLO] loaded.\n",
      "2022-02-17 11:00:03 [INFO]\tThe visualized result is saved as ./output/ResNet50_vd_ssld/visualize_028_1_0156.png\n"
     ]
    }
   ],
   "source": [
    "import paddlex as pdx\r\n",
    "test_transforms = transforms.Compose([\r\n",
    "    # 此处需要补充图像预处理代码\r\n",
    "    transforms.Normalize(),\r\n",
    "    transforms.ResizeByShort(),\r\n",
    "    transforms.Resize(1024),\r\n",
    "    transforms.RandomDistort()\r\n",
    "])\r\n",
    "model = pdx.load_model('output/PPYOLO_mobilenetv1/epoch_50')\r\n",
    "image_name = 'data/jtbz/VOC2007/JPEGImages/028_1_0156.png'\r\n",
    "result = model.predict(image_name,transforms=test_transforms)\r\n",
    "pdx.det.visualize(image_name, result, threshold=0.05, save_dir='./output/ResNet50_vd_ssld')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#查看预测效果\r\n",
    "infer_img = cv2.imread(\"./output/ResNet50_vd_ssld/visualize_028_1_0156.png\")\r\n",
    "plt.figure(figsize=(15,10))\r\n",
    "plt.imshow(cv2.cvtColor(infer_img, cv2.COLOR_BGR2RGB))\r\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# 五、导出模型\n",
    "打算把模型部署到手机上，所以先导出模型，再通过PaddleLite转换为arm可用的.nb模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/output/PPYOLO_mobilenetv1\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py:2253: UserWarning: The Attr(force_cpu) of Op(fill_constant) will be deprecated in the future, please use 'device_guard' instead. 'device_guard' has higher priority when they are used at the same time.\n",
      "  \"used at the same time.\" % type)\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/iou_aware.py:64\n",
      "The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/math_op_patch.py:341: UserWarning: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlex/cv/nets/detection/iou_aware.py:40\n",
      "The behavior of expression A / B has been unified with elementwise_div(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_div(X, Y, axis=0) instead of A / B. This transitional warning will be dropped in the future.\n",
      "  op_type, op_type, EXPRESSION_MAP[method_name]))\n",
      "W0217 11:11:02.110532  8190 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1\n",
      "W0217 11:11:02.115959  8190 device_context.cc:465] device: 0, cuDNN Version: 7.6.\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/io.py:2409: UserWarning: This list is not set, Because of Paramerter not found in program. There are: create_parameter_0.w_0 create_parameter_1.w_0 create_parameter_2.w_0 create_parameter_3.w_0 create_parameter_4.w_0 create_parameter_5.w_0 create_parameter_6.w_0 create_parameter_7.w_0 create_parameter_8.w_0 create_parameter_9.w_0 create_parameter_10.w_0 create_parameter_11.w_0 create_parameter_12.w_0 create_parameter_13.w_0 create_parameter_14.w_0 create_parameter_15.w_0 create_parameter_16.w_0 create_parameter_17.w_0 create_parameter_18.w_0 create_parameter_19.w_0 create_parameter_20.w_0 create_parameter_21.w_0 create_parameter_22.w_0 create_parameter_23.w_0 create_parameter_24.w_0 create_parameter_25.w_0 create_parameter_26.w_0 create_parameter_27.w_0 create_parameter_28.w_0 create_parameter_29.w_0 create_parameter_30.w_0 create_parameter_31.w_0 create_parameter_32.w_0 create_parameter_33.w_0 create_parameter_34.w_0 create_parameter_35.w_0 create_parameter_36.w_0 create_parameter_37.w_0 create_parameter_38.w_0 create_parameter_39.w_0 create_parameter_40.w_0 create_parameter_41.w_0 create_parameter_42.w_0 create_parameter_43.w_0 create_parameter_44.w_0 create_parameter_45.w_0 create_parameter_46.w_0 create_parameter_47.w_0\n",
      "  format(\" \".join(unused_para_list)))\n",
      "2022-02-17 11:11:07 [INFO]\tModel[PPYOLO] loaded.\n",
      "2022-02-17 11:11:08 [INFO]\tModel for inference deploy saved in ./inference_model.\n"
     ]
    }
   ],
   "source": [
    "#导出模型\r\n",
    "%cd ~/output/PPYOLO_mobilenetv1/\r\n",
    "!paddlex --export_inference --model_dir=./epoch_50 --save_dir=./inference_model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Collecting paddlelite\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/33/1a/02b25025bcb029f2eac9e5d582a18ff899bc6c0d9871bf3876e5703e66d9/paddlelite-2.10-cp37-cp37m-manylinux1_x86_64.whl (46.8 MB)\n",
      "     |████████████████████████████████| 46.8 MB 25 kB/s             \n",
      "\u001b[?25hInstalling collected packages: paddlelite\n",
      "Successfully installed paddlelite-2.10\n",
      "WARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\n"
     ]
    }
   ],
   "source": [
    "#安装PaddleLite\r\n",
    "!pip install paddlelite"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/output/PPYOLO_mobilenetv1\n",
      "Loading topology data from ./inference_model/__model__\n",
      "Loading params data from ./inference_model/__params__\n",
      "1. Model is successfully loaded!\n",
      "2. Model is optimized and saved into arm_model.nb successfully\n"
     ]
    }
   ],
   "source": [
    "#导出为arm可用的.nb模型\r\n",
    "!pwd\r\n",
    "import paddlelite\r\n",
    "!paddle_lite_opt --model_dir=./inference_model --model_file=./inference_model/__model__ --param_file=./inference_model/__params__ --optimize_out=arm_model --optimize_out_type=naive_buffer --valid_targets=arm"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "把生成的arm_model.nb和label文件保存下来，在Android Studio里部署，生成APP。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "请点击[此处](https://ai.baidu.com/docs#/AIStudio_Project_Notebook/a38e5576)查看本环境基本用法.  <br>\n",
    "Please click [here ](https://ai.baidu.com/docs#/AIStudio_Project_Notebook/a38e5576) for more detailed instructions. "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "py35-paddle1.2.0"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
